package com.jupai.investor.service.integration.puboffered.http

/**
 * com.jupai.investor.service.integration.puboffered.http
 * create by 2018/3/20
 * @author jochen
 */
object Dicts {
    enum class CustomerRiskLevel(val code: String) {
        保守型("01"),
        稳健型("02"),
        平衡型("03"),
        成长型("04"),
        积极型("05"),
        ;
    }

    enum class FundRiskLevel(val code: String) {
        低("01"),
        中低("02"),
        中("03"),
        中高("04"),
        高("05"),
        ;
    }

    enum class FundType(val code: String) {
        股票型基金("0"),
        债券型基金("1"),
        货币型基金("2"),
        混合型基金("3"),
        专户基金("4"),
        指数型基金("5"),
        QDII基金("6"),
        保本型基金("f"),
        ;
    }

    enum class BusinessType(val code: String) {
        申购("22"),
        赎回("24"),
        定投("39"),
        分红("43"),
        强行调增 ("44"),
        强行调减 ("45"),
        基金清盘 ("50"),
    }

    inline fun <reified E: Enum<E>> codeOf(code: String) : Enum<E>? = enumValues<E>().find {
        val field = it.javaClass.getDeclaredField("code")
        field.isAccessible = true
        val value = field.get(it).toString()
        value == code
    }
}